package controller.simulationcontroller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import view.simulationview.SimulationToolPanel;
import model.simulationmodel.SimulationModel;

/**
 * <b>Implementiert:</b> <code>ActionListener</code> <br>
 * <b>In Verbindung stehende Klassen:</b> <code>SimulationModel</code><br>
 * <br>
 * Zugehoerige Controllerklasse zum ViewElement StopButton. Diese Klasse stoesst
 * das <code>SimulationModel</code> an, eine laufende Simulation zu stoppen.
 * 
 * @author Team Locsi
 * 
 */
public class StopListener implements ActionListener {

	private SimulationModel sModel;
	private SimulationToolPanel stPanel;

	/**
	 * Dieser Konstruktor erzeugt ein neues <code>StopListener</code>-Objekt.
	 * 
	 * @param sModel
	 *            <code>SimulationModel</code> - Referenz auf das
	 *            <code>SimulationModel</code>
	 */
	public StopListener(SimulationModel sModel, SimulationToolPanel stPanel) {
		this.sModel = sModel;
		this.stPanel = stPanel;
	}

	/**
	 * Stoesst das <code>SimulationModel</code> an, eine laufende Simulation zu
	 * stoppen.
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		sModel.stopSimulation();
		stPanel.setSimulationRunningGif(false);
		stPanel.getTruthTableButton().setEnabled(true);
		stPanel.getTruthTableButton().setToolTipText("Wahrheitstabelle erzeugen");
		stPanel.getTruthTableButtonInMenu().setEnabled(true);
	}
}